﻿<?xml version="1.0" ?>
<xsd:schema targetNamespace="http://schemas.microsoft.com/office/excel/2003/xml" xmlns="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified">
	<xsd:import namespace="urn:schemas-microsoft-com:office:excel" schemaLocation="excel.xsd" />
	<xsd:import namespace="urn:schemas-microsoft-com:office:spreadsheet" schemaLocation="excelss.xsd" />
	<xsd:import namespace="http://schemas.microsoft.com/data/udc" schemaLocation="udc.xsd" />
	<xsd:annotation>
		<xsd:documentation>
			Permission to copy, display and distribute the contents of this document (the “Specification”), in any medium for any purpose without fee or royalty is hereby granted, provided that you include the following notice on ALL copies of the Specification, or portions thereof, that you make:
			Copyright (c) Microsoft Corporation.  All rights reserved.  Permission to copy, display and distribute this document is available at:  http://msdn.microsoft.com/library/en-us/odcXMLRef/html/odcXMLRefLegalNotice.asp?frame=true.  
			No right to create modifications or derivatives of this Specification is granted herein.
			There is a separate patent license available to parties interested in implementing software programs that can read and write files that conform to the Specification.  This patent license is available at this location:  http://www.microsoft.com/mscorp/ip/format/xmlpatentlicense.asp.
			THE SPECIFICATION IS PROVIDED "AS IS" AND MICROSOFT MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
			MICROSOFT WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE SPECIFICATION.
			The name and trademarks of Microsoft may NOT be used in any manner, including advertising or publicity pertaining to the Specification or its contents without specific, written prior permission. Title to copyright in the Specification will at all times remain with Microsoft.
			No other rights are granted by implication, estoppel or otherwise.
		</xsd:documentation>
	</xsd:annotation>
	<xsd:element name="MapInfo" type="MapInfoType">
		<xsd:annotation>
			<xsd:documentation>Specifies the mapping of XML document elements and attributes to spreadsheet cells.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="Binding" type="BindingType">
		<xsd:annotation>
			<xsd:documentation>Contains information necessary for connecting to an XML data source.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="BindingType">
		<xsd:annotation>
			<xsd:documentation>Contains information necessary for connecting to an XML data source.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="MapID" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contains the ID of the map that a binding will use when working with an XML data source.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="udc:DataSource" minOccurs="0" />
		</xsd:sequence>
		<xsd:attribute name="ID" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation>Specifies the unique identifier for a binding.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="LoadMode" use="optional" default="normal">
			<xsd:annotation>
				<xsd:documentation>Specifies how the data is to be loaded.</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="normal" />
					<xsd:enumeration value="om" />
					<xsd:enumeration value="delay" />
					<xsd:enumeration value="async" />
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="Async" use="optional" default="True">
			<xsd:annotation>
				<xsd:documentation>This element or attribute is not created or processed by Excel. It is designed to be used by external applications and components.</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="True" />
					<xsd:enumeration value="true" />
					<xsd:enumeration value="False" />
					<xsd:enumeration value="false" />
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="MapInfoType">
		<xsd:annotation>
			<xsd:documentation>Specifies the mapping of XML document elements and attributes to spreadsheet cells.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Schema" type="SchemaType" minOccurs="1" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Contains information about the schema that is being mapped.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Map" type="MapType" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Specifies the mapping between the elements and attributes in the schema and the cells in the spreadsheet.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="HideInactiveListBorder" use="optional" default="false">
			<xsd:annotation>
				<xsd:documentation>Specifies whether the borders of inactive lists are visible.</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="true" />
					<xsd:enumeration value="false" />
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="SelectionNamespaces" use="optional" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>Contains a space-delimited list of the namespace and prefix associations for all maps and XPath values in a workbook.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="SchemaType">
		<xsd:annotation>
			<xsd:documentation>Specifies a W3C schema whose elements and attributes are to be mapped to the cells in the spreadsheet.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:any processContents="skip" maxOccurs="unbounded" />
		</xsd:sequence>
		<xsd:attribute name="ID" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation>Specifies a unique ID for a W3C schema.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="Namespace" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation>Specifies the namespace to be used with a schema.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="SchemaRef" type="xsd:string" use="optional">
			<xsd:annotation>
				<xsd:documentation>Contains the ID for any XML Spreadsheet 2003 schema element that holds a W3C schema that this schema imports.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="MapType">
		<xsd:annotation>
			<xsd:documentation>Contains information on the mappings between the elements and attributes of a schema and spreadsheet cells.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ShowImportExportValidationErrors" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Specifies whether a spreadsheet will be saved if the resulting XML document will not be valid based on the associated schema.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Append" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>"Specifies that data is appended to a map on refresh, rather than overwriting current data."</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="x:DoNotPersist" minOccurs="0" />
			<xsd:element ref="x:NoAutoFit" minOccurs="0" />
			<xsd:element ref="x:NoPreserveFormatting" minOccurs="0" />
			<xsd:element name="Entry" type="EntryType" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Specifies a mapping between cells and elements or attributes. There is one Entry element for each mapped cell.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Mapdata" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Specifies whether UDC bound data is preserved.</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:any processContents="skip" minOccurs="0" maxOccurs="unbounded" />
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="ID" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>Specifies the unique identifier for a map.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="SchemaID" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>Specifies the value of the ID attribute for the XML Spreadsheet 2003 schema element that is used by a map.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="RootElement" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>Contains the unqualified name of the root element of the schema.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="EntryType">
		<xsd:annotation>
			<xsd:documentation>Defines the mappings between cells in the spreadsheet and the elements or attributes in the schema specified in the parent Map element.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Range" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contains the address of the cell mapped by this entry.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="HeaderRange" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contains an absolute reference (in R1C1 reference style) to the first cell in the row of headers for a table mapping.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="x:FilterOn" minOccurs="0" />
			<xsd:element name="XPath" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contains an XPath statement that points to the elements or attributes being mapped.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Field" type="FieldType" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Specifies the cell or cells in the spreadsheet that are being mapped.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ActiveRows" type="ActiveRowsType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contains XDT rows that are active.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="NoInserts" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>This element or attribute is not created or processed by Excel. It is designed to be used by external applications and components.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ReadOnly" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>This element or attribute is not created or processed by Excel. It is designed to be used by external applications and components.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="InstanceShape" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>This element or attribute is not created or processed by Excel. It is designed to be used by external applications and components.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
		<xsd:attribute name="ID" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation>Specifies a unique identifier for the Entry element.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="ShowTotals" type="truefalseType">
			<xsd:annotation>
				<xsd:documentation>Specifies whether the total row will be displayed when mapped to a list or table.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="Type" use="optional" default="table">
			<xsd:annotation>
				<xsd:documentation>Indicates whether the mapping will be to a single cell or to a table or list.</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="single" />
					<xsd:enumeration value="table" />
				</xsd:restriction>
				<!--data types-->
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="ActiveRowsType">
		<xsd:annotation>
			<xsd:documentation>Contains XDT rows that are active.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ActiveRow" type="xsd:string" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>This element or attribute is not created or processed by Excel. It is designed to be used by external applications and components.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="FieldType">
		<xsd:annotation>
			<xsd:documentation>Specifies which cells in the spreadsheet are to be mapped to the data pointed to by the XPath element.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Range" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contains a relative address that specifies which column is to be used for each of the elements mapped from the XML document.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="XPath" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contains a relative path from the parent element to the child element that is to be mapped to the column specified in the Range element.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="XSDType" type="xsd:string" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>"Contains the data type of the element or attribute being mapped, using the data types from the W3C Schema specification."</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="ss:Cell" minOccurs="0" />
			<xsd:element ref="x:DataValidation" minOccurs="0" />
			<xsd:element name="Aggregate" minOccurs="0" default="None">
				<xsd:annotation>
					<xsd:documentation>Indicates the kind of aggregation to be done in the totals row.</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="None" />
						<xsd:enumeration value="Sum" />
						<xsd:enumeration value="Count" />
						<xsd:enumeration value="CountNums" />
						<xsd:enumeration value="Var" />
						<xsd:enumeration value="Average" />
						<xsd:enumeration value="stdDev" />
						<xsd:enumeration value="Max" />
						<xsd:enumeration value="Min" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element ref="x:AutoFilterColumn" minOccurs="0" />
		</xsd:sequence>
		<xsd:attribute name="ID" type="xsd:string">
			<xsd:annotation>
				<xsd:documentation>Specifies the column heading value.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:simpleType name="truefalseType">
		<xsd:annotation>
			<xsd:documentation>Defines a data type with the values of true and false.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="true" />
			<xsd:enumeration value="false" />
		</xsd:restriction>
	</xsd:simpleType>
</xsd:schema>
